 NSA    
05.10.2001 . 
    ,                     .     ,                     .


 

 "tblPeoples"   "mdl_Find" 

  "mdl_Find"Option Compare Database
Option Explicit

'********************************************************
'      , 
'     ,
'       
'      
'        
'  .
'         .
'  NSA Programmer, 2001. http://www.msaccess.ru
' ~ E-mail: nsa@chat.ru ~ ICQ: 7349882
'********************************************************

Sub Find01_01()
' NSA Programmer, 2001. http://www.msaccess.ru
' ~ E-mail: nsa@chat.ru ~ ICQ: 7349882
'--------------------------------------------------------
'     "tblPeoples"
'   ,     LastName 
'   ""
'      ID_People   
'   
'    .
'     !!!
'--------------------------------------------------------
Dim db As Database
Dim rs As Recordset
Dim str As String
Dim lngRecordCount As Long 
'  

Set db = CurrentDb
Set rs = db.OpenRecordset("tblPeoples", dbOpenDynaset)
str = ""
lngRecordCount = 0
If rs.RecordCount <> 0 Then
rs.MoveFirst
Do Until rs.EOF
'    ...
If rs![LastName] = "" Then
'   
lngRecordCount = lngRecordCount + 1
str = str & rs![ID_People] & ", "
End If
rs.MoveNext
Loop
str = str & vbCrLf & "  : " & _
lngRecordCount
Else
str = " ""tblPeoples""   ."
End If
Debug.Print str
rs.Close
db.Close
End Sub




Sub Find01_02()
' NSA Programmer, 2001. http://www.msaccess.ru
' ~ E-mail: nsa@chat.ru ~ ICQ: 7349882
'--------------------------------------------------------
'     "tblPeoples"
'   ,     LastName 
'   ""
'      ID_People   
'   
'  FindFirst  FindNext
'         
'--------------------------------------------------------
Dim db As Database
Dim rs As Recordset
Dim str As String
Dim lngRecordCount As Long 
'  

Set db = CurrentDb
Set rs = db.OpenRecordset("tblPeoples", dbOpenDynaset)
str = ""
lngRecordCount = 0
If rs.RecordCount <> 0 Then
'  ,   
rs.FindFirst "[LastName] = ''"
' NoMatch    
' ,     Find   
' "   "
Do Until rs.NoMatch
lngRecordCount = lngRecordCount + 1
str = str & rs![ID_People] & ", "
rs.FindNext "[LastName] = ''" 
'  ,   
Loop
str = str & vbCrLf & "  : " & _
lngRecordCount
Else
str = " ""tblPeoples""   ."
End If
Debug.Print str
rs.Close
db.Close
End Sub




Sub Find01_03()
' NSA Programmer, 2001. http://www.msaccess.ru
' ~ E-mail: nsa@chat.ru ~ ICQ: 7349882
'--------------------------------------------------------
'     "tblPeoples"
'   ,     LastName 
'   ""
'      ID_People   '   
'  FindLast  FindPrevious
'     "Find01_02",  
'           
' 
'--------------------------------------------------------
Dim db As Database
Dim rs As Recordset
Dim str As String
Dim lngRecordCount As Long 
'  

Set db = CurrentDb
Set rs = db.OpenRecordset("tblPeoples", dbOpenDynaset)
str = ""
lngRecordCount = 0
If rs.RecordCount <> 0 Then
'  ,   
rs.FindLast "[LastName] = ''"
Do Until rs.NoMatch
lngRecordCount = lngRecordCount + 1
str = str & rs![ID_People] & ", "
rs.FindPrevious "[LastName] = ''" 
'  ,   
Loop
str = str & vbCrLf & "  : " & _
lngRecordCount
Else
str = " ""tblPeoples""   ."
End If
Debug.Print str
rs.Close
db.Close
End Sub




Sub Find01_04()
' NSA Programmer, 2001. http://www.msaccess.ru 
' ~ E-mail: nsa@chat.ru ~ ICQ: 7349882
'--------------------------------------------------------
'     "tblPeoples"
'     "Find01_02", 
'   
'       
' 
'    .
'--------------------------------------------------------
On Error GoTo Err_Find01_04
Dim db As Database
Dim rs As Recordset
Dim str As String
Dim lngRecordCount As Long
Dim strWhere As String 
'    

Set db = CurrentDb
Set rs = db.OpenRecordset("tblPeoples", dbOpenDynaset)
str = ""
lngRecordCount = 0
strWhere = "[LastName] = ''"
If rs.RecordCount <> 0 Then
rs.FindFirst strWhere
Do Until rs.NoMatch
lngRecordCount = lngRecordCount + 1
str = str & rs![ID_People] & ", "
rs.FindNext strWhere
Loop
str = str & vbCrLf & "  : " & _
lngRecordCount
Else
str = " ""tblPeoples""   ."
End If
Debug.Print str
rs.Close
db.Close
Exit_Find01_04:
Exit Sub
Err_Find01_04:
MsgBox Err.Description
Resume Exit_Find01_04

End Sub



Sub Find01_05()
' NSA Programmer, 2001. http://www.msaccess.ru
' ~ E-mail: nsa@chat.ru ~ ICQ: 7349882
'--------------------------------------------------------
'     "tblPeoples"
'   "Find01_04"    
' SQL   
'        SQL-
' .
'       
' .
'       ,  
'  
'         
'   
'     .  
'   Move  Find.
'--------------------------------------------------------
On Error GoTo Err_Find01_05
Dim db As Database
Dim rs As Recordset
Dim str As String
Dim lngRecordCount As Long
Dim strSQL As String 
'  SQL-

Dim strWhere As String 
'    

strWhere = "[LastName] = ''"
'  SQL
strSQL = "SELECT * FROM tblPeoples WHERE (" & _
strWhere & ")"
Set db = CurrentDb
'      SQL
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
str = ""
If rs.RecordCount <> 0 Then
rs.MoveFirst
Do Until rs.EOF
str = str & rs![ID_People] & ", "
rs.MoveNext
Loop
lngRecordCount = rs.RecordCount
str = str & vbCrLf & "  : " & _
lngRecordCount
Else
str = " ""tblPeoples""   ."
End If
Debug.Print str
rs.Close
db.Close
Exit_Find01_05:
Exit Sub
Err_Find01_05:
MsgBox Err.Description
Resume Exit_Find01_05

End Sub



Sub Find01_06(strTableName As String, strWhere As String)
' NSA Programmer, 2001. http://www.msaccess.ru
' ~ E-mail: nsa@chat.ru ~ ICQ: 7349882
'--------------------------------------------------------
'     "tblPeoples"
'   "Find01_05",     
'  
'      .    
'   
'   1-   .
'--------------------------------------------------------
On Error GoTo Err_Find01_06
Dim db As Database
Dim rs As Recordset
Dim str As String
Dim lngRecordCount As Long
Dim strSQL As String 
'  SQL-
strSQL = "SELECT * FROM [" & strTableName & _
"] WHERE (" & strWhere & ")"
Set db = CurrentDb
'      SQL
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
str = ""
If rs.RecordCount <> 0 Then
rs.MoveFirst
Do Until rs.EOF
str = str & rs.Fields(0).Value & ", "
rs.MoveNext
Loop
lngRecordCount = rs.RecordCount
str = str & vbCrLf & "  : " & _
lngRecordCount
Else
str = " """ & strTableName & """   ."
End If
Debug.Print str
rs.Close
db.Close
Exit_Find01_06:
Exit Sub
Err_Find01_06:
MsgBox Err.Description
Resume Exit_Find01_06
' :
'  : 
'Call Find01_06("tblPeoples", "[LastName] = ''")
'  : 
'Call Find01_06("tblPeoples", "[LastName] = ''")
'  : 
'Call Find01_06("tblPeoples", "[PeopleSex] = True")
'    1996 : 
'Call Find01_06("tblPeoples", "Year([BirthDate]) = 1996")
'  ,   1996 :
' Call Find01_06("tblPeoples", _
'"Year([BirthDate]) = 1996 And [PeopleSex] = False")
End Sub



'********************************************************
'     
'    
'********************************************************
'
'   -     
'   :
' strWhere = "[] = '" & _
'  & "'"
'
'    /    
'    :
' strWhere = "[] = " & _
' Mid(BuildCriteria("-", dbDate, _
' ), 3)
'  
' strWhere = "DateDiff('s',[], " & _
' Mid(BuildCriteria("-", dbDate, _
' ), 3) & ")=0"
'
'   ,   
'  
'  DateDiff:
' : strWhere = "[] > " & _
' 
' :
' strWhere = "DateDiff('s',[], " & _
' Mid(BuildCriteria("-", dbDate, _
' ), 3) & ")<0"
' : strWhere = "[] < " & _
' 
' :
' strWhere = "DateDiff('s',[], " & _
' Mid(BuildCriteria("-", dbDate, _
' ), 3) & ")>0"